home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #2
/
Monster Media No. 2 (Monster Media)(1994).ISO
/
pcboard
/
news11r0.zip
/
NEWSPPER.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-06-01
|
5KB
|
347 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
;------------------------------------------------------------------------------
STRING006 = Upper(PPEPath() + PPEName() + ".INI")
If (Exist(STRING006)) Goto LABEL001
STRING021 = "Unable to read " + STRING006
INTEGER001 = 1
STRING023 = "INIT:inifinder"
Gosub LABEL012
Goto LABEL006
:LABEL001
BOOLEAN001 = 1
STRING007 = "1.10"
STRING001 = "6E457753"
STRING002 = ReadLine(PCBDat(), 94)
STRING003 = ReadLine(STRING006, 1)
STRING004 = Upper(ReadLine(STRING006, 2))
STRING008 = Upper(ReadLine(STRING006, 3))
If (Exist(STRING008)) Goto LABEL002
STRING021 = "Unable to read " + STRING008
INTEGER001 = 1
STRING023 = "INIT:datafinder"
Gosub LABEL012
Goto LABEL006
:LABEL002
If (Len(STRING004) <= 1) STRING004 = "0000000000000000"
STRING002 = Mid(STRING002, 1, 4)
INTEGER005 = 1
While (INTEGER005 <= 4) Do
STRING005 = Asc(Mid(STRING002, INTEGER005, 1))
STRING001 = STRING001 + I2S(STRING005, 16)
Inc INTEGER005
EndWhile
If (STRING001 == STRING004) BOOLEAN001 = 0
STRING009 = "@X07"
If (BOOLEAN001) Goto LABEL003
GetUser
STRING010 = Upper(ReadLine(STRING006, 4))
STRING011 = Upper(ReadLine(STRING006, 5))
STRING013 = ReadLine(STRING006, 6)
STRING015 = ReadLine(STRING006, 7)
STRING014 = ReadLine(STRING006, 8)
STRING016 = ReadLine(STRING006, 9)
STRING017 = ReadLine(STRING006, 10)
STRING018 = ReadLine(STRING006, 11)
STRING019 = ReadLine(STRING006, 12)
STRING020 = Upper(ReadLine(STRING006, 13))
STRING012 = U_PageLen
If (STRING012 % 2 == 1) STRING012 = STRING012 - 1
Goto LABEL004
:LABEL003
STRING010 = "@X70"
STRING011 = "@X70"
STRING013 = "| ░▒░ "
STRING015 = "| ░▒░ "
STRING014 = " ░▒░ |"
STRING016 = " ░▒░ |"
STRING017 = ">"
STRING018 = "<"
STRING019 = "-"
STRING012 = 22
:LABEL004
If (Len(STRING013) > 6) STRING013 = Left(STRING013, 6)
If (Len(STRING015) > 6) STRING015 = Left(STRING015, 6)
If (Len(STRING014) > 6) STRING014 = Left(STRING014, 6)
If (Len(STRING016) > 6) STRING016 = Left(STRING016, 6)
If (Len(STRING017) > 1) STRING017 = Left(STRING017, 1)
If (Len(STRING018) > 1) STRING018 = Left(STRING018, 1)
If (Len(STRING019) > 1) STRING019 = Left(STRING019, 1)
If (Len(STRING013) < 6) Then
INTEGER005 = 6 - Len(STRING013)
STRING013 = STRING013 + Space(INTEGER005)
Endif
If (Len(STRING015) < 6) Then
INTEGER005 = 6 - Len(STRING015)
STRING015 = STRING015 + Space(INTEGER005)
Endif
If (Len(STRING014) < 6) Then
INTEGER005 = 6 - Len(STRING014)
STRING014 = Space(INTEGER005) + STRING014
Endif
If (Len(STRING016) < 6) Then
INTEGER005 = 6 - Len(STRING016)
STRING016 = Space(INTEGER005) + STRING016
Endif
STRING017 = Chr(Asc(STRING017))
STRING018 = Chr(Asc(STRING018))
STRING019 = Chr(Asc(STRING019))
STRING012 = STRING012 - 1
STRING013 = STRING010 + STRING013
STRING015 = STRING010 + STRING015
STRING014 = STRING010 + STRING014 + STRING009
STRING016 = STRING010 + STRING016 + STRING009
STRING024 = "@X0C[UNREGISTERED]@X07"
If (BOOLEAN001) Then
Log "Executing " + PPEName() + " v" + STRING007 + " " + StripAtx(STRING024), 0
Else
Log "Executing " + PPEName() + " v" + STRING007, 0
Endif
Gosub LABEL007
Gosub LABEL010
If (STRING020 == "Y") Then
Cls
Endif
StartDisp 1
INTEGER005 = 1
For INTEGER004 = 1 To INTEGER002
INTEGER003 = 2
While (INTEGER005 <= STRING012 - 1) Do
Select Case (INTEGER005)
Case 1
PrintLn STRING026
PrintLn STRING010 + STRING013 + Space(66) + STRING014 + STRING009
INTEGER005 = 2
Case STRING012 - 1
PrintLn STRING010 + STRING013 + Space(66) + STRING014 + STRING009
More
If (Abort()) Then
KbdStuff "^M"
Goto LABEL006
Endif
Dec INTEGER004
STRING025 = StripAtx(ReadLine(STRING008, INTEGER004))
Gosub LABEL011
If (INTEGER003 == 2) Then
STRING025 = STRING011 + STRING025
INTEGER003 = 1
Else
STRING025 = STRING010 + STRING025
INTEGER003 = 2
Endif
STRING025 = STRING015 + STRING025 + STRING016
PrintLn STRING025
Inc INTEGER004
Case INTEGER002
If (INTEGER005 < STRING012 - 1) Then
While (INTEGER005 <> STRING012 - 2) Do
If (INTEGER003 == 2) Then
STRING025 = STRING011 + Space(66)
INTEGER003 = 1
Goto LABEL005
Endif
STRING025 = STRING010 + Space(66)
INTEGER003 = 2
:LABEL005
STRING025 = STRING015 + STRING025 + STRING016
PrintLn STRING025
Inc INTEGER005
EndWhile
INTEGER005 = STRING012
Endif
PrintLn STRING010 + STRING013 + Space(66) + STRING014 + STRING009
End Select
Inc INTEGER005
EndWhile
INTEGER005 = 1
Next
PrintLn STRING026
More
:LABEL006
Print "@X0F" + Upper(PPEName()) + " v" + STRING007
If (BOOLEAN001) Print " - " + STRING024
PrintLn "@X0F - c.1993-94, George Silberstern@X07"
If (!BOOLEAN001) PrintLn "@X0BRegistered to: " + STRING003 + "@X07"
If (BOOLEAN001) Delay 182
ResetDisp
If (DbgLevel() <> 0) DbgLevel 0
Stop
End
:LABEL007
FOpen 1, STRING008, 0, 2
If (Ferr(1)) Then
STRING021 = "Unable to open " + STRING008
INTEGER001 = 2
STRING023 = "SUB:fetchsize"
Gosub LABEL012
Goto LABEL006
Endif
FGet 1, STRING025
:LABEL008
If (Ferr(1)) Goto LABEL009
Inc INTEGER002
FGet 1, STRING025
Goto LABEL008
:LABEL009
FClose 1
Return
:LABEL010
STRING017 = Chr(Asc(STRING017))
STRING018 = Chr(Asc(STRING018))
STRING019 = Chr(Asc(STRING019))
For INTEGER005 = 1 To 76
STRING026 = STRING026 + STRING019
Next
STRING026 = STRING010 + STRING017 + STRING026 + STRING018 + STRING009
Return
:LABEL011
If (Len(STRING025) >= 66) Then
STRING025 = Mid(STRING025, 1, 66)
ElseIf (Len((STRING025 < 66))) Then
STRING025 = STRING025 + Space(66 - Len(STRING025))
Endif
Return
:LABEL012
STRING022 = "ERROR: [" + String(INTEGER001) + "] " + STRING021
PrintLn "@X0C" + STRING022 + "@X0F (" + STRING023 + ")@X07"
Log STRING022 + "(" + STRING023 + ")", 0
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 1 Cls
; 2 More
; 43 Goto
; 98 Let
; 2 Print
; 10 PrintLn
; 39 If
; 1 FOpen
; 1 FClose
; 2 FGet
; 1 ResetDisp
; 1 StartDisp
; 1 GetUser
; 3 Log
; 6 Gosub
; 4 Return
; 1 Delay
; 5 Inc
; 1 Dec
; 1 Stop
; 1 KbdStuff
; 1 DbgLevel
;
;
; ■ Functions used :
;
; 1 %
; 68 +
; 11 -
; 7 ==
; 2 <>
; 8 <
; 5 <=
; 8 >
; 5 >=
; 26 !
; 4 &&
; 2 ||
; 19 Len(
; 7 Upper()
; 3 Mid()
; 7 Left()
; 10 Space()
; 2 Ferr()
; 6 Chr()
; 7 Asc()
; 1 Abort()
; 2 StripAtx()
; 1 String()
; 1 PCBDat()
; 1 PPEPath()
; 15 ReadLine()
; 2 Exist()
; 1 I2S()
; 4 PPEName()
; 1 DbgLevel()
;
;------------------------------------------------------------------------------
;
; Analysis flags : d
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 2 For/Next
; 3 While/EndWhile
; 13 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------